using System;
using System.Collections.Generic;
using System.Text;
using JobShopModel.Model.FactoryLvl;
using JobShopModel.Model.Job;
//TODO DOCUMENTATION
//TODO IMPLEMENT MULTIPLE MACHINE ON ONE STATION
namespace JobShopModel.Model.Station
{
    /// <summary>
    /// 
    /// </summary>
    class RegularStation:IStations
    {

        private Time operationTime;
        private Time iddleTime;
        private Time blockedTime;
        private StationsStates state;
        private StationsList name;
        private Queue<Jobs> jobQueue;
        


        public Time OperationTime
        {
            get { return operationTime; }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        public Time IddleTime
        {
            get { return iddleTime; }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        public Time BlockedTime
        {
            get { return blockedTime; }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        public StationsStates State
        {
            get { return state; }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        public Time PerformOperation(Operation op)
        {
            //TODO: Calculate the time for an operation depending on the operation number
            return new Time(1.0);
        }


        public Jobs ReadQueue()
        {
            return jobQueue.Dequeue();
        }

        public StationsList Name
        {
            get { return name; }
        }




    }
}
